#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
#include<sys/fcntl.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include <pthread.h>
#include<net/if.h>
#include <netdb.h>
#include<sys/ioctl.h>
#include <fcntl.h>
int main(int argc, char const *argv[])
{
    int fd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    // int bufSize=0;
    // int buflen=sizeof(bufSize);
    // bufSize=10000;
    // setsockopt(fd,SOL_SOCKET,SO_SNDBUF,&bufSize,buflen);
    // bufSize=0;
    // // buflen=0;
    // getsockopt(fd,SOL_SOCKET,SO_SNDBUF,&bufSize,&buflen);
    // printf("发送缓冲区大小：%d\n",bufSize);
    struct sockaddr_in addr;
    socklen_t len = sizeof(addr);
    addr.sin_family=AF_INET;
    addr.sin_addr.s_addr=inet_addr(argv[1]);
    addr.sin_port=htons(atoi(argv[2]));
    //发起链接请求
    if(connect(fd,(struct sockaddr *)&addr,len)==-1)
    {
        perror("发起链接请求失败！");
    }
    else
        printf("发起链接请求成功！\n");
    char sendbuf[100];
    char recvbuf[100];
    sleep(1);
    while(1)
    {
        bzero(sendbuf,100);
        fgets(sendbuf,100,stdin);
        if(send(fd,sendbuf,strlen(sendbuf),0)<=0)
        {
            printf("写入失败！\n");
        }
        printf("完成写入！\n");
        // send(fd,"s",1,MSG_OOB);
        // sleep(1);
        // send(fd,"sendbuf",7,MSG_OOB);
        bzero(recvbuf,100);
        if(recv(fd,recvbuf,100,0)>0)
            printf("服务器回弹：%s",recvbuf);

    }
    close(fd);

    return 0;
}
